Some modern broadcast receiver devices are designed to support multiple audio inputs from different broadcast domains. For example end user content (such as a radio show) may be received via audio streams from domains such as frequency modulation broadcasting (FM), digital audio broadcasting (DAB) and/or Internet radio. The transmit paths of these audio stream may have varying processing delays which result in streams that are misaligned in time. Initial processing at the receiver may misalign the audio streams further.
It may be a requirement for the broadcast receiver to switch from one audio stream or input to another, for example an input may be lost when the receiver moves out of range of the input's source. Due to the misalignment, the transition may not be seamless which degrades user experience. For example when switching from a transmit path with a short processing delay to a transmit path with a long processing delay, data may not yet be available on the high processing delay path. A potential approach to address this is the buffering of the received audio streams in order to realign the incoming data. However such storing may be subject to restrictions.
Embodiments of the present application may be concerned with a storage mechanism for broadcast data received at a multi-source receiver.
In a first aspect of the disclosure we provide a reception device comprising:                at least one receiver and a corresponding delay buffer configured to receive portions of data for at least one data stream;        the at least one delay buffer comprising at least part of a host device and configured to store the portions of data received by a respective receiver; and        a memory configured to maintain indexing information for the or each of the delay buffers, the indexing information providing at least an indication of time points in the content of each of the portions of data; and        a controller configured to request delayed data portions from one or more of the at least one delay buffer of the host device for decoding of the delayed data portions;        the reception device configured such that each delayed data portion received by the reception device from the host device in response to each request of the controller is received as a plurality of consecutively received sub-portions, each sub-portion comprising a subset of the content of the delayed data portion, the receipt of each sub-portion taking at least a predetermined transfer time and each delayed data portion configured such that all of its constituent sub-portions are required for decoding said delayed data portion;        wherein based on a request to switch from decoding delayed data portions from a first time point to decoding delayed data portions from a different, second time point, the request received while the controller is configured to receive the delayed data portion from said first time point for decoding;        the controller is configured to perform the following;        (a) identify one or more second-time-point delayed data portions to request from the host device based on the second time point and the indexing information;        (b) request the one or more identified second-time-point delayed data portions from the host device; and        (c) while one or both of requesting and receiving the one or more second-time-point delayed data portions, request one or more delayed data portions corresponding to the first time or at least corresponding to a time subsequent thereto for decoding for at least some of a total transfer time for receiving the one or more second-time-point delayed data portions, the total transfer time comprising the sum of the predetermined transfer times for each sub-portion of the one or more identified second-time-point delayed data portions.        
In one or more examples, the reception device comprises a plurality of receivers and corresponding, associated delay buffers configured to receive portions of data for a plurality of data streams carrying respective content, wherein the content of each data stream is misaligned with at least one other data stream with respect to time.
In one or more embodiments, the controller is configured to determine the total transfer time for receiving the one or more identified second-time-point delayed data portions using meta information indicative of the number of sub-portions required to receive the one or more identified delayed data portions, and                based on the determined total transfer time, determine the one or more requests, required in step (b), of the one or more delayed data portions corresponding to the first time or times consecutively subsequent thereto in order to continue decoding said delayed data portions while the one or more identified second-time-point delayed data portions are received from the host device.        
In one or more embodiments, the controller is configured to determine the total transfer time for receiving the one or more identified second-time-point delayed data portions using meta information indicative of the number of sub-portions required to receive the one or more identified delayed data portions, and                based on the determined total transfer time, a switch time comprising the time the controller provides for switching from decoding the delayed data portions associated with the first time to from decoding the second-time-point delayed data portions.        
In one or more embodiments, the content of the data portions comprises one or both of audio and video for presentation to a user when decoded and the continued decoding of the one or more delayed data portions requested during the one or both of requesting and receiving of the one or more identified second-time-point delayed data portions provides for gapless presentation of the audio or video to the user.
In one or more embodiments, step (a) includes the identification of a first candidate delayed data portion comprising the delayed data portion 901 directly subsequent to the delayed data portion 900 containing the second time point 806, determination of the total transfer time of the first candidate delayed data portion and wherein:                if the total transfer time of the first candidate delayed data portion 901 is less than the time between the second time point 806 and a time point (805 as positioned in FIG. 10) defined by the start of the content of the first candidate delayed data portion, the controller is caused to identify said first candidate delayed data portion as the second-time-point delayed data portion; and        if the total transfer time of the first candidate delayed data portion 901 is greater than the time between the second time point 806 and the time point (805 as positioned in FIG. 10) defined by the start of the content of the first candidate delayed data portion, the controller is caused to identify a delayed data portion received subsequent to (i.e. 1004) the first candidate delayed data portion as the second-time-point delayed data portion.        
In one or more embodiments, the reception device includes a first buffer and a second buffer for receiving delayed data portions from the host device;                the first buffer configured to receive the one or more delayed data portions corresponding to the first time or at least corresponding to a time subsequent thereto; and        the second buffer configured to receive the one or more identified second-time-point delayed data portions;        the controller configured to provide the one or more delayed data portions of the first buffer to a decoder while the second buffer receives at least all of the sub-portions of one of the one or more of the identified second-time-point delayed data portions.        
In one or more embodiments, the reception device includes a decoder configured to decode the delayed data portions received from the host device, the decoder configured to provide decoded delayed data portions for presentation to a user.
In one or more embodiments, the reception device includes a decoder-out buffer configured to hold decoded delayed data portions for presentation to a user by a content renderer.
In one or more embodiments, the reception device includes a content renderer configured to receive a decoded data stream formed of the decoded delayed data portions held in said decoder-out buffer for presentation to a user.
In one or more embodiments, each request by the controller for delayed data portions from the host device comprise a request for delayed data portions from all of the delay buffers.
In one or more embodiments, the indexing information comprises read and write pointers for each delay buffer.
In one or more embodiments, the at least one receiver is configured to receive a data stream selected from a frequency modulated FM stream, a Digital Audio Broadcast DAB stream, a Digital Audio Broadcast DAB+ stream, a T-DMB stream, an analogue audio or video stream and a digital audio or video stream.
In a second aspect of the disclosure we provide a method for a reception device comprising at least one receiver and a corresponding delay buffer configured to receive portions of data for at least one data stream; the delay buffers comprising at least part of a host device and configured to store the portions of data received by a respective receiver; and a memory configured to maintain indexing information for the or each of the delay buffers, the indexing information providing at least an indication of time points in the content of each of the portions of data; and a controller configured to request delayed data portions from one or more of the at least one delay buffer of the host device for decoding of the delayed data portions; the reception device configured such that each delayed data portion received by the reception device from the host device in response to each request of the controller is received as a plurality of consecutively received sub-portions, each sub-portion comprising a subset of the content of the delayed data portion, the receipt of each sub-portion taking at least a predetermined transfer time and each delayed data portion configured such that all of its constituent sub-portions are required for decoding said delayed data portion;                wherein based on a request to switch from decoding delayed data portions from a first time point to decoding delayed data portions from a different, second time point, the request received while the controller is configured to receive the delayed data portion from said first time point for decoding;        the controller is configured to perform the method of;        (a) identifying one or more second-time-point delayed data portions to request from the host device based on the second time point and the indexing information;        (b) requesting the one or more identified second-time-point delayed data portions from the host device; and        (c) while one or both of requesting and receiving the one or more second-time-point delayed data portions, requesting one or more delayed data portions corresponding to the first time or at least corresponding to a time subsequent thereto for decoding for at least some of a total transfer time for receiving the one or more second-time-point delayed data portions, the total transfer time comprising the sum of the predetermined transfer times for each sub-portion of the one or more identified second-time-point delayed data portions.        
In a third aspect of the disclosure we provide a presentation device for presentation of one or more of video and audio content to a user, the presentation device comprising the reception device of the first aspect and a host device for buffering data streams received by the reception device.
In a fourth aspect of the disclosure we provide host device for buffering data streams for a multi-source receiver comprising:                an input configured to receive portions of data from a reception device in a forwarding message, the portions of data forming part of at least one data stream, the input further configured to receive indexing information associated with at least one delay buffer in the forwarding message;        at least one delay buffer configured to store the respective portions of data in the at least one delay buffer in dependence on the indexing information;        the host device configured such that each delayed data portion transferred to the reception device from the host device in response to each request of a controller of the reception device is transferred as a plurality of consecutively transferred sub-portions, each sub-portion comprising a subset of the content of the delayed data portion, the transfer of each sub-portion taking at least a predetermined transfer time and each delayed data portion configured such that all of its constituent sub-portions are required for decoding said delayed data portion at the reception device; and        while transferring the sub-portions of one or more second-time-point delayed data portions to the reception device, transferring one or more delayed data portions corresponding to a first, different time or at least corresponding to a time subsequent thereto for decoding by the reception device for at least some of a total transfer time for transferring the one or more second-time-point delayed data portions, the total transfer time comprising the sum of the predetermined transfer times for each sub-portion of the one or more identified second-time-point delayed data portions.        
We also disclose a reception device comprising: a plurality of receivers and associated delay buffers configured to receive portions of data for a plurality of data streams carrying respective content, wherein the content of each data stream is misaligned with at least one other data stream with respect to time; a controller configured to forward the portions of data to a host device to be stored in respective delay buffers; and a memory, which together with the controller, maintains indexing information for each of the delay buffers; wherein the controller is further configured to forward indexing information for each of the delay buffers with the portions of data.
The indexing information may comprise read and write pointers for each delay buffer. The controller may be configured to maintain the indexing information by adjusting the read pointers to point to portions in the respective delay buffers carrying corresponding content. The controller may be configured to send a forwarding message to the host device comprising the portions of data and the write pointers. The controller may be further configured to send a request message to the host device for at least one of the stored data portions, the request message comprising an associated read pointer. The controller may be further configured to send the forwarding message and the request message as part of a first communication message.
The reception device may be further configured to receive delayed data portions from the host device, wherein the received delayed data portions carry corresponding content. The reception device may be further configured to render at least one of the received delayed data portions to an output. A portion of data may have a predetermined size. The controller may be further configured to forward the portions of data in response to one portion of data being received on each of the plurality of data streams. The controller may be further configured to forward the portions of data to the host device periodically.
The reception device may be further configured to receive at least one stored portion of data from the host device in response to a request. The reception device may be further configured to receive a data portion from a further data stream received at the host device in response to a request for a data portions of at least one of the plurality of data streams. The controller may be further configured to store meta information associated with respective data portions. The meta information may comprise quality information of the respective data portion.
The controller may be further configured to identify data portions stored at the host device to be requested in dependence on at least the stored meta information. The reception device may be further configured to request the identified data portions. The reception device may be further configured to identify at least one data portion of sufficient quality to be rendered.
We also disclose a host device for buffering data streams for a multi-source receiver comprising: an input configured to receive portions of data from a reception device in a forwarding message, the portions of data forming part of a plurality of data streams carrying respective content, wherein the content of each data stream is misaligned with at least one other data stream with respect to time, the input further configured to receive indexing information associated with a plurality of delay buffers in the forwarding message; and a plurality of delay buffers configured to store the portions of data in the respective delay buffers in dependence on the indexing information.
The indexing information may comprise at least a write pointer for each delay buffer. The input may be further configured to receive a request message requesting at least one data portion from the delay buffers, the request message comprising indexing information identifying the data portions requested. The indexing information in the request message may comprise a read pointer associated with the requested data portion(s). The forwarding message and the request message may form a first communication message.
The host device may further comprise an output configured to provide data portions from the delay buffers to the reception device, the provided data portions carry corresponding content. A portion of data may have a predetermined size. The host device may further comprise an output configured to provide at least one stored portion of data from the delay buffers in response to a request from the reception device. The input may be further configured to receive a further portion of data from a further data stream, the further data stream being received from a further source and carrying the corresponding content. The output may be further configured to provide the further portion of data to a reception device in response to a request for at least one data portion from the delay buffers.
It will be appreciated that for features that span more than one drawing like reference numerals indicate the like feature.